<!-- HTML header for doxygen 1.9.7-->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.13.2"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<title>libsir: The Standard Incident Reporter Library</title>
<!-- OpenGraph -->
<meta property="og:title" content="libsir: The Standard Incident Reporter Library">
<meta property="og:description" content="A lightweight, cross-platform C library for information distribution">
<meta property="og:url" content="https://libsir.rml.dev">
<meta property="og:type" content="website">
<meta property="og:image" content="https://libsir.rml.dev/res/libsir-og.png">
<meta name="twitter:card" content="summary_large_image"></meta>
<meta name="twitter:title" content="libsir: The Standard Incident Reporter Library"></meta>
<meta name="twitter:description" content="A lightweight, cross-platform C library for information distribution"></meta>
<meta name="twitter:image" content="https://libsir.rml.dev/res/libsir-og.png"></meta>
<!-- /OpenGraph -->
<!-- favicon -->
<link rel="icon" href="res/libsir-icon.png">
<link rel="icon" href="res/libsir-icon.svg" type="image/svg+xml">
<link rel="manifest" href="res/icons.webmanifest">
<!-- /favicon -->
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="cookie.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="stylesheet.css" rel="stylesheet" type="text/css" />
<link href="rml-navtree.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr id="projectrow">
  <td id="projectalign">
   <div id="projectname">libsir<span id="projectnumber">&#160;2.2.6</span>
   </div>
   <div id="projectbrief">Standard Incident Reporter</div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.13.2 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search/",'.html');
/* @license-end */
</script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() { codefold.init(0); });
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
  initMenu('',true,false,'search.php','Search',true);
  $(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function(){initNavTree('sir_8hh.html',''); initResizable(true); });
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<div id="MSearchResults">
<div class="SRPage">
<div id="SRIndex">
<div id="SRResults"></div>
<div class="SRStatus" id="Loading">Loading...</div>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
</div>
</div>
</div>
</div>

<div class="header">
  <div class="summary">
<a href="#nested-classes">Data Structures</a> &#124;
<a href="#namespaces">Namespaces</a> &#124;
<a href="#concepts">Concepts</a> &#124;
<a href="#typedef-members">Typedefs</a> &#124;
<a href="#func-members">Functions</a>  </div>
  <div class="headertitle"><div class="title">sir.hh File Reference</div></div>
</div><!--header-->
<div class="contents">

<p>C++ interface to libsir.  
<a href="#details">More...</a></p>
<div class="textblock"><div class="dynheader">
This graph shows which files directly or indirectly include this file:</div>
<div class="dyncontent">
<div class="center"><iframe scrolling="no" frameborder="0" src="sir_8hh__dep__incl.svg" width="128" height="108"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div>
</div>
</div>
<p><a href="sir_8hh_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="nested-classes" name="nested-classes"></a>
Data Structures</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structsir_1_1error.html">sir::error</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Contains basic information about an error.  <a href="structsir_1_1error.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structsir_1_1error__info.html">sir::error_info</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Contains all available information about an error.  <a href="structsir_1_1error__info.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsir_1_1exception.html">sir::exception</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">The exception type thrown by libsir.  <a href="classsir_1_1exception.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsir_1_1policy.html">sir::policy</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Defines the partially abstract interface for a policy which controls the behavior of logger at runtime.  <a href="classsir_1_1policy.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsir_1_1default__policy.html">sir::default_policy</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">In the event that no custom configuration or behavior is desired, provides defaults for everything.  <a href="classsir_1_1default__policy.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsir_1_1adapter.html">sir::adapter</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Defines the abstract interface for an adapter, which ultimately becomes a public base class of logger (there can be more than one).  <a href="classsir_1_1adapter.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsir_1_1default__adapter.html">sir::default_adapter&lt; TPolicy &gt;</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">The default adapter implementation.  <a href="classsir_1_1default__adapter.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsir_1_1std__format__adapter.html">sir::std_format_adapter&lt; TPolicy &gt;</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Adapter for std::format (when available).  <a href="classsir_1_1std__format__adapter.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsir_1_1boost__format__adapter.html">sir::boost_format_adapter&lt; TPolicy &gt;</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Adapter for boost::format (when available).  <a href="classsir_1_1boost__format__adapter.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsir_1_1fmt__format__adapter.html">sir::fmt_format_adapter&lt; TPolicy &gt;</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Adapter for {fmt} (when available).  <a href="classsir_1_1fmt__format__adapter.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsir_1_1std__iostream__adapter.html">sir::std_iostream_adapter&lt; TPolicy &gt;</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Provides a std::iostream interface to libsir's logging functions.  <a href="classsir_1_1std__iostream__adapter.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsir_1_1logger.html">sir::logger&lt; RAII, TPolicy, TAdapters &gt;</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">The primary C++ interface to libsir.  <a href="classsir_1_1logger.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="namespaces" name="namespaces"></a>
Namespaces</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">namespace &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacesir.html">sir</a></td></tr>
<tr class="memdesc:namespacesir"><td class="mdescLeft">&#160;</td><td class="mdescRight">libsir C++ wrapper implementation. <br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="concepts" name="concepts"></a>
Concepts</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">concept &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="conceptsir_1_1_derived_from_policy.html">sir::DerivedFromPolicy</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Ensures that T derives from policy. <br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">concept &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="conceptsir_1_1_derived_from_stream_buf.html">sir::DerivedFromStreamBuf</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Ensures that T derives from std::streambuf. <br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">concept &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="conceptsir_1_1_derived_from_t.html">sir::DerivedFromT</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">True if all Ts are derived classes of TBase, otherwise false. <br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="typedef-members" name="typedef-members"></a>
Typedefs</h2></td></tr>
<tr class="memitem:af7e07997ea6e1fd2886a5ddc09eb91f7" id="r_af7e07997ea6e1fd2886a5ddc09eb91f7"><td class="memTemplParams" colspan="2"><a id="af7e07997ea6e1fd2886a5ddc09eb91f7" name="af7e07997ea6e1fd2886a5ddc09eb91f7"></a>
template&lt;size_t N, typename ... Ts&gt; </td></tr>
<tr class="memitem:af7e07997ea6e1fd2886a5ddc09eb91f7"><td class="memTemplItemLeft" align="right" valign="top">using&#160;</td><td class="memTemplItemRight" valign="bottom"><b>sir::NthTypeOf</b> = typename std::tuple_element&lt;N, std::tuple&lt;Ts...&gt;&gt;::type</td></tr>
<tr class="memdesc:af7e07997ea6e1fd2886a5ddc09eb91f7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Utility template for obtaining the type of Nth item in a parameter pack. <br /></td></tr>
<tr class="separator:af7e07997ea6e1fd2886a5ddc09eb91f7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afea168ed2dc59a4b8ab004364a6f4112" id="r_afea168ed2dc59a4b8ab004364a6f4112"><td class="memItemLeft" align="right" valign="top"><a id="afea168ed2dc59a4b8ab004364a6f4112" name="afea168ed2dc59a4b8ab004364a6f4112"></a>
using&#160;</td><td class="memItemRight" valign="bottom"><b>sir::default_logger</b> = <a class="el" href="classsir_1_1logger.html">logger</a>&lt;true, <a class="el" href="classsir_1_1default__policy.html">default_policy</a>, <a class="el" href="classsir_1_1default__adapter.html">default_adapter</a>&gt;</td></tr>
<tr class="memdesc:afea168ed2dc59a4b8ab004364a6f4112"><td class="mdescLeft">&#160;</td><td class="mdescRight">A logger that implements the default adapter. <br /></td></tr>
<tr class="separator:afea168ed2dc59a4b8ab004364a6f4112"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae08772b1ec0bd141c79d99fc4ba2d6ce" id="r_ae08772b1ec0bd141c79d99fc4ba2d6ce"><td class="memItemLeft" align="right" valign="top"><a id="ae08772b1ec0bd141c79d99fc4ba2d6ce" name="ae08772b1ec0bd141c79d99fc4ba2d6ce"></a>
using&#160;</td><td class="memItemRight" valign="bottom"><b>sir::std_format_logger</b></td></tr>
<tr class="memdesc:ae08772b1ec0bd141c79d99fc4ba2d6ce"><td class="mdescLeft">&#160;</td><td class="mdescRight">A logger that implements the default adapter and the std::format adapter. <br /></td></tr>
<tr class="separator:ae08772b1ec0bd141c79d99fc4ba2d6ce"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9a3c14fe6dc0ce95abd6a5d823f3dada" id="r_a9a3c14fe6dc0ce95abd6a5d823f3dada"><td class="memItemLeft" align="right" valign="top"><a id="a9a3c14fe6dc0ce95abd6a5d823f3dada" name="a9a3c14fe6dc0ce95abd6a5d823f3dada"></a>
using&#160;</td><td class="memItemRight" valign="bottom"><b>sir::boost_logger</b></td></tr>
<tr class="memdesc:a9a3c14fe6dc0ce95abd6a5d823f3dada"><td class="mdescLeft">&#160;</td><td class="mdescRight">A logger that implements the default adapter and the boost::format adapter. <br /></td></tr>
<tr class="separator:a9a3c14fe6dc0ce95abd6a5d823f3dada"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abcbcc21fee81bc437c75083b90688e6a" id="r_abcbcc21fee81bc437c75083b90688e6a"><td class="memItemLeft" align="right" valign="top"><a id="abcbcc21fee81bc437c75083b90688e6a" name="abcbcc21fee81bc437c75083b90688e6a"></a>
using&#160;</td><td class="memItemRight" valign="bottom"><b>sir::fmt_logger</b></td></tr>
<tr class="memdesc:abcbcc21fee81bc437c75083b90688e6a"><td class="mdescLeft">&#160;</td><td class="mdescRight">A logger that implements the default adapter and the fmt::format adapter. <br /></td></tr>
<tr class="separator:abcbcc21fee81bc437c75083b90688e6a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adf1c3a7184436b3e0e7145325e867f0a" id="r_adf1c3a7184436b3e0e7145325e867f0a"><td class="memItemLeft" align="right" valign="top"><a id="adf1c3a7184436b3e0e7145325e867f0a" name="adf1c3a7184436b3e0e7145325e867f0a"></a>
using&#160;</td><td class="memItemRight" valign="bottom"><b>sir::iostream_logger</b></td></tr>
<tr class="memdesc:adf1c3a7184436b3e0e7145325e867f0a"><td class="mdescLeft">&#160;</td><td class="mdescRight">A logger that implements the default adapter and the std::iostream adapter. <br /></td></tr>
<tr class="separator:adf1c3a7184436b3e0e7145325e867f0a"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="func-members" name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:aeeaffc9b61a4a185d0376489c7424119" id="r_aeeaffc9b61a4a185d0376489c7424119"><td class="memTemplParams" colspan="2">template&lt;DerivedFromPolicy TPolicy&gt; </td></tr>
<tr class="memitem:aeeaffc9b61a4a185d0376489c7424119"><td class="memTemplItemLeft" align="right" valign="top">static bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacesir.html#aeeaffc9b61a4a185d0376489c7424119">sir::throw_on_policy</a> (bool expr) noexcept(false)</td></tr>
<tr class="memdesc:aeeaffc9b61a4a185d0376489c7424119"><td class="mdescLeft">&#160;</td><td class="mdescRight">Handles a potential error; if an error is present and the policy in place requires throwing an exception, retrieves the associated error code and message from libsir, then throws.  <br /></td></tr>
<tr class="separator:aeeaffc9b61a4a185d0376489c7424119"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5f417c5e60499d22d51b5128a66dbe1a" id="r_a5f417c5e60499d22d51b5128a66dbe1a"><td class="memTemplParams" colspan="2"><a id="a5f417c5e60499d22d51b5128a66dbe1a" name="a5f417c5e60499d22d51b5128a66dbe1a"></a>
template&lt;size_t N, typename TBase, typename ... Ts&gt; </td></tr>
<tr class="memitem:a5f417c5e60499d22d51b5128a66dbe1a"><td class="memTemplItemLeft" align="right" valign="top">consteval auto&#160;</td><td class="memTemplItemRight" valign="bottom"><b>sir::all_derived_from_t</b> ()</td></tr>
<tr class="memdesc:a5f417c5e60499d22d51b5128a66dbe1a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Ensures (at compile time) that all Ts are derived classes of TBase. <br /></td></tr>
<tr class="separator:a5f417c5e60499d22d51b5128a66dbe1a"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>C++ interface to libsir. </p>
<dl class="section version"><dt>Version</dt><dd>2.2.6</dd></dl>
<hr  />
<p>SPDX-License-Identifier: MIT</p>
<p>Copyright (c) 2018-2024 Ryan M. Lederman <a href="#" onclick="location.href='mai'+'lto:'+'led'+'er'+'man'+'@g'+'mai'+'l.'+'com'; return false;">leder<span class="obfuscator">.nosp@m.</span>man@<span class="obfuscator">.nosp@m.</span>gmail<span class="obfuscator">.nosp@m.</span>.com</a></p>
<p>Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
<hr  />
 </div></div><!-- contents -->
</div><!-- doc-content -->
<!-- HTML footer for doxygen 1.9.7-->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="navelem"><a class="el" href="dir_d44c64559bbebec7f509842c48db8b23.html">include</a></li><li class="navelem"><a class="el" href="sir_8hh.html">sir.hh</a></li>
    <li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.13.2 </li>
  </ul>
</div>
</body>
</html>
